#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QHostAddress>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    pSocket = new QTcpSocket(this);
    pSocket->connectToHost("192.168.10.251",9000);

    connect(pSocket,&QTcpSocket::connected,this,[=](){
        qDebug()<<"已链接服务器"<<endl;
        this->setWindowTitle("已链接服务器");
        //把QTcpSocket的可以读数据的信号和lambda表达式连接
        connect(pSocket,&QTcpSocket::readyRead,this,[=]{
            char buf[128];
            pSocket->read(buf,sizeof(buf));//读取网络发来的数据
            qDebug()<<buf<<endl;
            QString str = ui->textEdit->toPlainText();//获得文本框中已有的文本
            str+='\n';
            str+=buf;
            ui->textEdit->setText(str);//把数据重新设置会文本框中
        });

        //把QTcpSocket的断开连接的信号和lambda表达式连接
        connect(pSocket,&QTcpSocket::disconnected,this,[=]{
            pSocket->close();
            qDebug()<<"我是客户端端，服务器断开连接了";
        });
    });
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
    QString str = ui->textEdit_2->toPlainText();
    std::string str1 = str.toStdString();//把QString转为标准模板库中的字符串
    const char * pStr = str1.c_str();//把标准模板库字符串转为const char * 的数据
    char buf[128] = {0};
    strcpy(buf,pStr);
    pSocket->write(buf,sizeof(buf));//发送128字符串到服务器
}
